﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using CAOS.Entity.Enum;

namespace CAOS.Entity
{
    [Table("RECURSO")]
    public class Recurso : ICAOSEntity
    {
        [Key]
        [Column("RECU_SQ_RECURSO")]
        public int RecursoID { get; set; }

        [Column("RECU_CD_RECURSO")]
        [Required(ErrorMessage = "Campo obrigatório.")]
        [StringLength(15, ErrorMessage = "O código do recurso deve possuir de 3 a 15 caracteres.", MinimumLength = 3)]
        [RegularExpression(@"(\S)+", ErrorMessage = "Espaços em branco não são permitidos.")]
        public string Codigo { get; set; }

        [Column("RECU_NM_RECURSO")]
        [Required(ErrorMessage = "Campo obrigatório.")]
        [StringLength(35, ErrorMessage = "O nome do recurso deve possuir de 3 a 35 caracteres.", MinimumLength = 3)]
        public string Nome { get; set; }

        public int SistemaID { get; set; }
        public virtual Sistema Sistema { get; set; }

        [Column("RECU_SQ_RECURSO_PAI")]
        public int? RecursoPaiID { get; set; }
        public virtual Recurso RecursoPai { get; set; }

        public virtual IList<Recurso> RecursosFilhos { get; set; }
    }
}
